package com.falm.picturebackend.service;

import javax.servlet.http.HttpServletRequest;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.falm.picturebackend.entity.DTO.*;
import com.falm.picturebackend.entity.VO.UserVO;
import com.falm.picturebackend.entity.common.PageRequest;
import com.github.pagehelper.PageInfo;

/**
 * @author Administrator
 */
public interface UserService {

    /**
     * 用户注册
     * 
     * @param userRegisterDTO 注册信息
     */
    void userRegister(UserRegisterDTO userRegisterDTO);

    /**
     * 用户登录
     * 
     * @param userLoginDTO 登录信息
     * @return token
     */
    String userLogin(UserLoginDTO userLoginDTO);

    /**
     * 获取当前登录用户
     *
     * @param request token
     * @return 用户信息
     */
    UserVO getLoginUser(HttpServletRequest request);

    /**
     * 登出
     * 
     * @param request token
     * @return 登出信息
     */
    void logout(HttpServletRequest request);

    /**
     * 新增用户
     * @param userAddDTO 新增用户信息
     * @return 新增用户
     */
    void addUser(UserAddDTO userAddDTO);

    /**
     * 删除用户
     * @param userDeleteDTO 删除用户信息
     */
    void deleteUser(UserDeleteDTO userDeleteDTO);

    /**
     * 更新用户信息
     * @param userUpdateDTO 更新用户信息
     */
    void updateUser(UserUpdateDTO userUpdateDTO);

    /**
     * 获取用户信息
     * @param userGetDTOPageRequest 获取用户信息
     * @return 用户信息
     */
    PageInfo<UserVO> getUser(PageRequest<UserGetDTO> userGetDTOPageRequest);
}